dynamics_linear_structural_solvers Module

Advances a linear structural system with the generalized-alpha method. Dense and CSR integrators solve the semidiscrete equation

Matrices and loads must already reflect any prescribed boundary conditions. The caller supplies a consistent initial acceleration and advances the load at both ends of each time step. Initialized objects reuse their work arrays and their effective-system factorization when the time step is unchanged. The linalg GMRES routine still allocates its own iteration workspace for large CSR systems.



Contents


Derived Types

Defines a generalized alpha integrator for dense matrix systems.

Type-Bound Procedures

procedure , public :: initialize => initialize_dense_integrator Subroutine

Copies system matrices and allocates reusable workspace.

procedure , public :: solve => integrator_solve Subroutine

Advances a state through successive columns of a force history.

procedure , public :: step => dense_integrator_step Subroutine

Advances one step using cached dense LU when dt is unchanged.

Defines a generalized alpha integrator for sparse matrix systems.

Type-Bound Procedures

procedure , public :: initialize => initialize_sparse_integrator Subroutine

Copies CSR matrices and allocates reusable workspace.

procedure , public :: solve => integrator_solve Subroutine

Advances a state through successive columns of a force history.

procedure , public :: step => sparse_integrator_step Subroutine

Advances one step using a cached effective CSR system.

type, public ::  structural_integrator

Base class for linear structural time integrators.

Type-Bound Procedures

procedure , public :: solve => integrator_solve Subroutine

Advances a state through successive columns of a force history.

procedure (integrator_step) , public , pass :: step

Advances the state by one time step.